home *** CD-ROM | disk | FTP | other *** search
- public FadeOut
- public FadeIn
- code segment 'CODE' PUBLIC
- assume cs:code
-
- palette db 0,0,0,0,0,42,60,63,51,0,42,42,42,0,0,42,0,42,42,42,0,42,42,42,0,0,21,0,0,63,0,42
- db 21,0,42,63,42,0,21,42,0,63,42,42,21,42,42,63,0,21,0,0,21,42,0,63,0,0,63,42,42,21,0,42
- db 21,42,42,63,0,42,63,42,0,21,21,0,21,63,0,63,21,0,63,63,42,21,21,42,21,63,42,63,21,42,63,63
- db 21,0,0,21,0,42,21,42,0,21,42,42,63,0,0,63,0,42,63,42,0,63,42,42,21,0,21,21,0,63,21,42,21
- db 21,42,63,63,0,21,63,0,63,63,42,21,63,42,63,21,21,0,21,21,42,21,63,0,21,63,42,63,21,0,63
- db 21,42,63,63,0,63,63,42,21,21,21,21,21,63,21,63,21,21,63,63,63,21,21,63,21,63,63,63,21,63
- db 63,63
- pal_buf1 db 384 dup(0)
- pal_buf2 db 384 dup(0)
-
- Fadeout proc far
- push bp
- mov bp,sp
- push ds
- push di
- push si
-
- push bx
- mov bx,192
- loopie:
- mov dl,[byte ptr palette+bx]
- mov [byte ptr pal_buf1+bx],dl
- dec bx
- jnz loopie
- pop bx
-
- mov cx,31
- fadeoutl:
- push cx
- mov bx,0
- @@fade2: cmp [pal_buf1+bx],0
- je no_dec
- cmp [pal_buf1+bx],1
- je @@f2
- dec [pal_buf1+bx]
- @@f2: dec [pal_buf1+bx]
- no_dec: inc bx
- cmp bx,192
- jne @@fade2
- call setpal
- pop cx
- loop fadeoutl
-
- pop si
- pop di
- pop ds
- pop bp
- retF
- endp fadeout
-
- FadeIn proc far
- push bp
- mov bp,sp
- push ds
- push di
- push si
-
- push bx
- mov bx,384
- nogeens:
- mov dl,[byte ptr pal_buf2+bx]
- mov [byte ptr pal_buf1+bx],dl
- dec bx
- jnz nogeens
- pop bx
-
- mov cx,31
- fadeinl:
- push cx
- mov cx,192
- mov bx,0
- bl2:
- mov dl,[palette+bx]
- add [pal_buf1+192+bx],dl
- bl3: cmp [byte ptr pal_buf1+192+bx],32
- jb @@bl7
- inc [byte ptr pal_buf1+bx]
- sub [byte ptr pal_buf1+192+bx],32
- jmp bl3
- @@bl7:
- inc bx
- loop bl2
- call setpal
- pop cx
- dec cx
- jnz fadeinl
- pop si
- pop di
- pop ds
- pop bp
-
- RetF
- FadeIn ENDP
-
- Setpal proc
- mov dx, 03DAh
- v1:
- in al, dx
- test al,08h
- jnz v1
- v2:
- in al, dx
- test al,08h
- jz v2
-
- mov dx,3c8h
- mov ax,seg pal_buf1
- mov ds,ax
- mov si,offset pal_buf1
- mov cx,192
- xor al,al
- out dx,al
- inc dx
- cld
- @l1: lodsb ;Especially for the owners of 8088/8086
- out dx,al
- loop @l1
- ret
- Setpal endp
-
- code ends
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-